package com.lms.net;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;

/**
 * @Author: 李孟帅
 * @CreateTime: 2020-07-09 07:51
 * @Description:
 */
public class SocketDemo {
    public static void main(String[] args) throws IOException, InterruptedException {
//        创建一个未连接的套接字，并使用系统默认类型的SocketImpl。
        Socket socket = new Socket();
//        创建流套接字并将其连接到指定主机上的指定端口号。
//        Socket localhost = new Socket("localhost", 3306);
////        返回套接字所连接的地址。
//        InetAddress inetAddress = localhost.getInetAddress();
////        获取套接字所绑定的本地地址。
//        InetAddress localAddress = localhost.getLocalAddress();
////        返回此套接字绑定到的端点的地址。
//        SocketAddress localSocketAddress = localhost.getLocalSocketAddress();
////        返回此套接字绑定到的本地端口号。
//        int localPort = localhost.getLocalPort();
////        返回此套接字连接到的远程端口号。
//        int port = localhost.getPort();
////        返回套接字的连接状态。
//        boolean connected = localhost.isConnected();
////        返回套接字的绑定状态。
//        boolean bound = localhost.isBound();
////        返回套接字的关闭状态。
//        boolean closed = localhost.isClosed();
////        返回套接字连接的一半是否关闭。 。
//        boolean inputShutdown = localhost.isInputShutdown();
////        返回套接字连接的写半是否关闭。
//        boolean outputShutdown = localhost.isOutputShutdown();
////        测试是否启用了 SO_KEEPALIVE 。
//        boolean keepAlive = localhost.getKeepAlive();
////        将此套接字转换为 String 。
//        System.out.println(localhost);
//        localhost.close();
//        将套接字绑定到本地地址。
        socket.bind(new InetSocketAddress(18080));
//        将此套接字连接到服务器。  需要先绑定本地端口在连接服务器，否则客户端会在连上服务器时自动分配端口，在绑定本地端口会失败
//        socket.connect(new InetSocketAddress(InetAddress.getByName("localhost"),3306));
        socket.connect(new InetSocketAddress("192.100.5.115",2404));
        System.out.println(socket);
    }
}
